layui.use(['form', 'jquery', 'xmSelect'], function () {
    var form = layui.form;
    let $ = layui.jquery;
    var util = layui.util;

    createClassTree();
    submit();
    onFn();

    function createClassTree() {
        $.ajax({
            url: '/system/menu/tree/',
            type: 'post',
            success: function (result) {
                renderTree(result);
            }
        });

        function renderTree(data) {
            var $menuIds = $('input[name="menuIds"]');
            var menuIds = $menuIds.val();
            var initValue = [];
            if(menuIds) {
                initValue = menuIds.split(',');
            }

            xmSelect.render({
                el: '#classTree',
                height: 'auto',
                initValue: initValue, // 初始化选中值
                prop: {
                    name: 'name',
                    value: 'id'
                },
                data: data,
                tree: {
                    // 是否显示树状结构
                    show: true,
                    // 是否严格遵守父子模式
                    strict: false,
                    // 是否开启极简模式
                    simple: false
                },
                model: {
                    label: {
                        block: {
                            showIcon: false // 隐藏删除按钮
                        }
                    }
                },
                // 选中事件
                on: function (data) {
                    var values = data.arr.map(item => item.id).join(',');
                    $menuIds.val(values);
                }
            });
        }
    }

    // 表单提交
    function submit(){
        form.on('submit(btn-submit)', function (data) {
            $.ajax({
                url: '/system/role/savemenu/',
                type: 'post',
                dataType: 'json',
                data: data.field,
                success: function (result) {
                    if (result.code === 0) {
                        layer.msg(result.msg, { icon: 1, time: 1000 }, function () {
                            parent.layer.close(parent.layer.getFrameIndex(window.name)); // 关闭当前页
                            parent.layui.table.reload("list");
                        });
                    } else {
                        parent.layer.msg('异常', { icon: 2 })
                    }
                }
            });

            return false;
        });


    }

    // 事件绑定
    function onFn() {
        util.on('lay-on', {
            // 关闭当前页
            'close': function () {
                window.parent.layer.close(parent.layer.getFrameIndex(window.name));
            }
        })
    }
})